Integrating Formal Program Verification with Testing
نویسنده
چکیده
Verification activities mandated for critical software are essential to achieve the required level of confidence expected in life-critical or business-critical software. They are becoming increasingly costly as, over time, they require the development and maintenance of a large body of functional and robustness tests on larger and more complex applications. Formal program verification offers a way to reduce these costs while providing stronger guarantees than testing. Addressing verification activities with formal verification is supported by upcoming standards such as do-178c for software development in avionics. In the Hi-Lite project, we pursue the integration of formal verification with testing for projects developed in C or Ada. In this paper, we discuss the conditions under which this integration is at least as strong as testing alone. We describe associated costs and benefits, using a simple banking database application as a case study.
منابع مشابه
Integrating Verification, Testing, and Learning for Cryptographic Protocols
The verification of cryptographic protocol specifications is an active research topic and has received much attention from the formal verification community. By contrast, the black-box testing of actual implementations of protocols, which is, arguably, as important as verification for ensuring the correct functioning of protocols in the “real” world, is little studied. We propose an approach fo...
متن کاملIntegrating Formal Specification and Software Verification and Validation
It is not surprising that students are unconvinced about the benefits of formal methods if we do not show them how these methods can be integrated with other activities in the software lifecycle. In this paper, we describe an approach to integrating formal specification with more traditional verification and validation techniques in a course that teaches formal specification and specification-b...
متن کاملIntegrated and Tool-Supported Teaching of Testing, Debugging, and Verification
This paper reports about the design, implementation, and experiences with a non-traditional formal methods course called “Testing, Debugging, and Verification”. The course aims at integrating formal and informal methods as much as possible. It is supposed to be accessible to participants without extensive mathematical training.
متن کاملCloser to Reliable Software: Verifying Functional Behaviour of Concurrent Programs
Static formal verification techniques are an e↵ective method for verification of software. They exploit the advantages of formal methods to statically prove that the implementation of a program satisfies its formally written specification. This makes formal verification especially powerful: any execution of the program is guaranteed to behave correctly. Therefore, these techniques are especiall...
متن کاملVerification and testing automation of UML projects
This paper presents an integrated approach to verification and testing automation of UML projects. It consists of automatic model creation from UML specifications in the formal language of basic protocols, model’s verification by the means of VRS technology and automatic tests generation in TTCN language using TAT. The actuality of this task arises from necessity of software functionality’s cor...
متن کامل